home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / graphics / vlapak1.zip / TERM_VLA.ZIP / EXEC.INC next >
Text File  |  1993-08-29  |  3KB  |  128 lines

  1. ────────────────────────────────────────────────────────────────────────────
  2. CLEN = 17
  3.  
  4. GSZFileName db  "C:\DOS\GSZ.EXE",0
  5. UpParams    dw  0,offset UpCmdTail, seg UpCmdTail, 0,0,0,0
  6. DNParams    dw  0,offset DownCmdTail, seg DownCmdTail, 0,0,0,0
  7.  
  8. UPCMDtail   db  CLEN
  9.             db  " port 2 sz -m -r "
  10. FileName    db  130 dup (0)
  11.  
  12. DOWNCMDtail db  CLEN                  ;length of cmd tail (dont count CR)
  13.             db  " port 2 rz -m -r "
  14.             db  13
  15.  
  16. SaveSPSS    dd  ?
  17.  
  18. MSG_Upload  db  "UPLOAD FILE:",13,10,"Please enter filename: $"
  19. MSG_DownLoad db "DOWNLOAD FILE:",13,10,"$"
  20.  
  21. MSG_UploadF  db  13,10,10,"UPLOAD FINISHED",13,10,"Back in terminal mode.$"
  22. MSG_DownLoadF db 13,10,10,"DOWNLOAD FINISHED",13,10,"Back in terminal mode.$"
  23.  
  24. KeyInputBuffer db 60,?,61 dup (0)
  25. ────────────────────────────────────────────────────────────────────────────
  26.     ────────────────────────────────────────────────────────────────────
  27.     ; Executes a file
  28.     ;
  29.     ; IN: DS:DX = ptr to the filename to execute
  30.     ;     ES:BX = ptr to the Parameters
  31.     ;
  32.     ;OUT: AL = Return code of subfunction
  33.     ────────────────────────────────────────────────────────────────────
  34. PROC CallExec NEAR
  35.     pusha
  36.     push    ds es
  37.     pushf
  38.     
  39.     mov     [WORD HIGH cs:SaveSPSS],SS
  40.     mov     [WORD LOW  cS:SaveSPSS],SP
  41.  
  42.     mov     ax,4b00h
  43.     int     21h
  44.  
  45.     cli
  46.   ;  lss     sp,[cs:SaveSPSS]
  47.     
  48.     mov     ss,[WORD HIGH cs:SaveSPSS]
  49.     mov     sp,[WORD LOW  cS:SaveSPSS]
  50.     
  51.     sti
  52.  
  53.     popf
  54.     pop     es ds
  55.     popa
  56.     ret
  57. ENDP CallExec
  58. ────────────────────────────────────────────────────────────────────────────
  59.     ────────────────────────────────────────────────────────────────────
  60.     ;Prompts for a filename and then tries to upload the file
  61.     ────────────────────────────────────────────────────────────────────
  62. PROC UpLoad NEAR
  63.     pusha    
  64.     push    ds es
  65.  
  66.     mov     bx,cs
  67.     mov     es,bx
  68.     mov     ds,bx
  69.  
  70.     mov     dx,offset MSG_UPLOAD
  71.     mov     ah,9
  72.     int     21h
  73.  
  74.     mov     ah,0ah              ;buffered keyboard input
  75.     mov     dx,offset KeyInputBuffer
  76.     int     21h
  77.  
  78.     mov     si,offset KeyInputBuffer + 2
  79.     mov     di,offset FileName
  80.     mov     cl,[KeyInputBuffer + 1]
  81.     xor     ch,ch
  82.     jcxz    @@SkipMov
  83.     rep movsb
  84. @@SkipMov:
  85.     mov     [BYTE es:di],13      ;add CR
  86.  
  87.     mov     cl,[KeyInputBuffer + 1]
  88.     add     cl,CLEN
  89.     mov     [UpCMDTail],cl
  90.  
  91.     mov     bx,offset UPparams
  92.     mov     dx,offset GSZFileName
  93.     call    CallExec
  94.  
  95.     mov     dx,offset MSG_UploadF
  96.     mov     ah,9
  97.     int     21h
  98.  
  99.     pop     es ds
  100.     popa
  101.     ret
  102. ENDP
  103.     ────────────────────────────────────────────────────────────────────
  104.     ;Just executes GSZ for a Zmodem download
  105.     ────────────────────────────────────────────────────────────────────
  106. PROC DownLoad NEAR
  107.     push    ds dx es bx ax
  108.  
  109.     mov     bx,cs
  110.     mov     es,bx
  111.     mov     ds,bx
  112.  
  113.     mov     dx,offset MSG_DOWNLOAD
  114.     mov     ah,9
  115.     int     21h
  116.  
  117.     mov     bx,offset DNparams
  118.     mov     dx,offset GSZFileName
  119.     call    CallExec
  120.  
  121.     mov     dx,offset MSG_DOWNLOADF
  122.     mov     ah,9
  123.     int     21h
  124.  
  125.     pop     ax bx es dx ds
  126.     ret
  127. ENDP
  128.